/*
using System;
using System.Collections.Generic;
namespace Framework.Random
{
    public interface IRandomPool<T>
    {
        public int seed
        public T Get();
        public void SetItems(IEnumerable<T> items);
        public void SetItems
    }
    
    public interface IDynamicPool<T> : IRandomPool<T>
    {
        void AddItem(T item, float weight);
        void AddItems(float weight, IEnumerable<T> items);
        void AddItems(float weight, params T[] items);
        void AddItems(IEnumerable<(T item, float weight)> items);
        void AddItems(params (T item, float weight)[] items);
    }
    public abstract class RandomPool<T>
    {
        private readonly List<T> items = new();
        protected bool Initialzed = false;

        public abstract void AddItem(T item, float weight);
        public abstract void SetItems(params (T item, float weight)[] items);
        public abstract T GetItem(params (T item, float weight)[] items);
    }

    public class StaticWeightedPool : RandomPool
    {
        
    }
}
*/